home *** CD-ROM | disk | FTP | other *** search
- package javax.swing.plaf.basic;
-
- import java.awt.Component;
- import java.awt.Cursor;
- import java.awt.Point;
- import java.awt.Rectangle;
- import java.awt.event.MouseEvent;
- import java.util.Enumeration;
- import javax.swing.JComponent;
- import javax.swing.JTable;
- import javax.swing.event.MouseInputListener;
- import javax.swing.table.TableColumn;
- import javax.swing.table.TableColumnModel;
-
- public class BasicTableHeaderUI$MouseInputHandler implements MouseInputListener {
- // $FF: synthetic field
- private final BasicTableHeaderUI this$0;
- private boolean phantomMousePressed;
- private int lastEffectiveMouseX;
-
- public BasicTableHeaderUI$MouseInputHandler(BasicTableHeaderUI var1) {
- this.this$0 = var1;
- this.phantomMousePressed = false;
- }
-
- private int getResizingColumn(Point var1) {
- int var2 = 0;
- Rectangle var3 = new Rectangle(-3, 0, 6, this.this$0.header.getSize().height);
- int var4 = this.this$0.header.getColumnModel().getColumnMargin();
-
- for(Enumeration var5 = this.this$0.header.getColumnModel().getColumns(); var5.hasMoreElements(); ++var2) {
- TableColumn var6 = (TableColumn)var5.nextElement();
- var3.x += var6.getWidth() + var4;
- if (var3.x > var1.x) {
- break;
- }
-
- if (var3.contains(var1)) {
- return var2;
- }
- }
-
- return -1;
- }
-
- public void mouseClicked(MouseEvent var1) {
- }
-
- public void mouseDragged(MouseEvent var1) {
- int var2 = var1.getX();
- int var3 = var2 - this.lastEffectiveMouseX;
- if (var3 != 0) {
- TableColumn var4 = this.this$0.header.getResizingColumn();
- TableColumn var5 = this.this$0.header.getDraggedColumn();
- if (var4 != null) {
- int var6 = var4.getWidth();
- int var7 = var6 + var3;
- var4.setWidth(var7);
- int var8 = this.viewIndexForColumn(var4);
- this.this$0.header.getTable().sizeColumnsToFit(var8);
- int var9 = var4.getWidth() - var6;
- this.lastEffectiveMouseX += var9;
- this.this$0.header.revalidate();
- this.this$0.header.repaint();
- if (this.this$0.header.getUpdateTableInRealTime()) {
- JTable var10 = this.this$0.header.getTable();
- ((JComponent)var10).revalidate();
- ((Component)var10).repaint();
- }
- } else if (var5 != null) {
- this.move(var1, var3);
- this.lastEffectiveMouseX = var2;
- } else {
- this.lastEffectiveMouseX = var2;
- }
-
- }
- }
-
- public void mouseEntered(MouseEvent var1) {
- }
-
- public void mouseExited(MouseEvent var1) {
- }
-
- public void mouseMoved(MouseEvent var1) {
- if (this.getResizingColumn(var1.getPoint()) != -1) {
- Cursor var2 = Cursor.getPredefinedCursor(11);
- if (this.this$0.header.getCursor() != var2) {
- this.this$0.header.setCursor(var2);
- }
- } else {
- Cursor var3 = Cursor.getPredefinedCursor(0);
- if (this.this$0.header.getCursor() != var3) {
- this.this$0.header.setCursor(var3);
- }
- }
-
- }
-
- public void mousePressed(MouseEvent var1) {
- this.phantomMousePressed = true;
- this.this$0.header.setDraggedColumn((TableColumn)null);
- this.this$0.header.setResizingColumn((TableColumn)null);
- this.this$0.header.setDraggedDistance(0);
- Point var2 = var1.getPoint();
- this.lastEffectiveMouseX = var2.x;
- TableColumnModel var3 = this.this$0.header.getColumnModel();
- int var4 = var3.getColumnIndexAtX(var2.x);
- if (var4 != -1) {
- int var5 = this.getResizingColumn(var2);
- if (this.this$0.header.getResizingAllowed() && var5 != -1) {
- TableColumn var7 = var3.getColumn(var5);
- this.this$0.header.setResizingColumn(var7);
- } else if (this.this$0.header.getReorderingAllowed()) {
- TableColumn var6 = var3.getColumn(var4);
- this.this$0.header.setDraggedColumn(var6);
- }
- }
-
- }
-
- public void mouseReleased(MouseEvent var1) {
- this.phantomMousePressed = false;
- this.this$0.header.setResizingColumn((TableColumn)null);
- this.this$0.header.setDraggedColumn((TableColumn)null);
- this.this$0.header.setDraggedDistance(0);
- this.this$0.header.repaint();
- JTable var2 = this.this$0.header.getTable();
- if (var2 != null) {
- ((Component)var2).repaint();
- }
-
- }
-
- private void move(MouseEvent var1, int var2) {
- TableColumnModel var3 = this.this$0.header.getColumnModel();
- int var4 = var3.getColumnCount() - 1;
- TableColumn var5 = this.this$0.header.getDraggedColumn();
- int var6 = this.this$0.header.getDraggedDistance() + var2;
- int var7 = this.viewIndexForColumn(var5);
- if (var6 < 0 && var7 != 0) {
- int var11 = var3.getColumnMargin() + var3.getColumn(var7 - 1).getWidth();
- if (-var6 > var11 / 2) {
- var3.moveColumn(var7, var7 - 1);
- var6 += var11;
- --var7;
- }
- } else if (var6 > 0 && var7 != var4) {
- int var8 = var3.getColumnMargin() + var3.getColumn(var7 + 1).getWidth();
- if (var6 > var8 / 2) {
- var3.moveColumn(var7, var7 + 1);
- var6 = -(var8 - var6);
- ++var7;
- }
- }
-
- Rectangle var12 = this.this$0.header.getHeaderRect(var7);
- var12.x += this.this$0.header.getDraggedDistance();
- Rectangle var9 = this.this$0.header.getHeaderRect(var7);
- var9.x += var6;
- var12 = var12.union(var9);
- this.this$0.header.repaint(var12.x, 0, var12.width, var12.height);
- if (this.this$0.header.getUpdateTableInRealTime()) {
- JTable var10 = this.this$0.header.getTable();
- if (var10 != null) {
- ((Component)var10).repaint(var12.x, 0, var12.width, (var10.getRowHeight() + var10.getIntercellSpacing().height) * var10.getRowCount());
- }
- }
-
- this.this$0.header.setDraggedColumn(var3.getColumn(var7));
- this.this$0.header.setDraggedDistance(var6);
- }
-
- private int viewIndexForColumn(TableColumn var1) {
- TableColumnModel var2 = this.this$0.header.getColumnModel();
-
- for(int var3 = 0; var3 < var2.getColumnCount(); ++var3) {
- if (var2.getColumn(var3) == var1) {
- return var3;
- }
- }
-
- return -1;
- }
- }
-